home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs11.d81 / gifcomm.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  6KB  |  171 lines

  1. 10 GOTO2015
  2. 15 POKE55,.:POKE56,31
  3. 17 CLR:DIMFG$,H$,T$,FT$:Z$=CHR$(.):M$=CHR$(13):B=7936:Q$=CHR$(34):GOTO900
  4. 20 F=.:PRINT"ENTER DISK DRIVE DEVICE NUMBER."
  5. 22 PRINT"(ENTER 0 TO EXIT.)"
  6. 25 PRINT:PRINT"  8[145]":INPUTD:IFD=.THEN495
  7. 30 IFD<4ORD>30THENPRINT"[147]ILLEGAL DEVICE NUMBER":GOTO20
  8. 35 POKE186,D:SYS51777
  9. 40 IFPEEK(2)=1THENPRINT"[147]?DEVICE";D;"[157] NOT PRESENT":GOTO20
  10. 45 IFPEEK(2)THEN49
  11. 48 PRINT"[147]NO FREE BLOCKS ON DISK":GOTO20
  12. 49 OPEN15,D,15:OPEN8,D,8,"#"
  13. 50 PRINT#15,"U1";8;0;18;1
  14. 51 PRINT#15,"U2";8;0;18;1
  15. 52 CLOSE8:PRINT"[147]":GOSUB600:IFA>19THENCLOSE15:PRINT:GOTO20
  16. 55 PRINT"ENTER COMPLETE GIF FILENAME."
  17. 57 PRINT"(PRESS RETURN FOR DIRECTORY.)"
  18. 60 FG$="":INPUTFG$:IFFG$=""THENOPEN8,D,.,"$":SYS51510:PRINT"[147]":CLOSE15:GOTO20
  19. 63 OPEN8,D,8,FG$:CLOSE8
  20. 65 GOSUB600:IFA>19THENPRINT:GOTO55
  21. 67 GOSUB500:SD=S:PD=P:POKE195,SD:POKE196,PD
  22. 70 PRINT"ENTER TEXT FILENAME."
  23. 73 PRINT"(PRESS RETURN TO START OVER.)"
  24. 75 PRINT:FT$="":INPUTFT$:IFFT$=""THENPRINT"[147]":CLOSE15:GOTO20
  25. 77 OPEN8,D,8,FT$:CLOSE8
  26. 80 GOSUB600:IFA>19THEN70
  27. 81 GOSUB500:OPEN8,D,8,"#"
  28. 82 PRINT#15,"U1";8;0;18;S
  29. 83 PRINT#15,"B-P";8;P+3
  30. 84 W=PEEK(45)+256*PEEK(46)+23:POKEW,16:POKEW+1,183:POKEW+2,2
  31. 85 FORI=.TO15:GET#8,A$:IFA$=CHR$(160)THENPOKEW,I:I=15:GOTO87
  32. 86 POKEI+695,ASC(A$+Z$)
  33. 87 NEXT
  34. 88 PRINT#15,"B-P";8;P+28
  35. 89 GET#8,A$:R=ASC(A$+Z$)
  36. 90 GET#8,A$:R=256*ASC(A$+Z$)+R
  37. 91 IFR>168THENPRINT"TOO MANY BLOCKS IN FILE":CLOSE8:GOTO70
  38. 93 PRINT"[147]";H$;M$;T$;M$;"ONE MOMENT PLEASE..."
  39. 94 PRINT#15,"U1";8;0;18;SD
  40. 96 PRINT#15,"B-P";8;PD+1
  41. 97 GET#8,A$:T=ASC(A$+Z$):POKE176,T
  42. 98 GET#8,A$:S=ASC(A$+Z$):POKE177,S
  43. 99 POKEW-21,16:POKEW-20,167:POKEW-19,2
  44. 100 FORI=.TO15:GET#8,A$:IFA$=CHR$(160)THENPOKEW-21,I:I=15:GOTO105
  45. 102 POKEI+679,ASC(A$+Z$)
  46. 105 NEXT
  47. 107 PRINT"CHECKING ";Q$;FG$;Q$;"..."
  48. 110 PRINT#15,"U1";8;0;T;S
  49. 115 GET#8,A$:TT=ASC(A$+Z$)
  50. 120 GET#8,A$:SS=ASC(A$+Z$)
  51. 130 IFF=1THEN800
  52. 135 IFFTHEN300
  53. 140 GOTO700
  54. 160 T=TT:S=SS:GOTO110
  55. 200 PRINT#15,"B-P";8;J
  56. 205 GET#8,A$:IFA$=","ORA$=";"ORA$="!"THEN220
  57. 210 J=J+1:IFJ<256THEN205
  58. 215 J=.:RETURN
  59. 220 T2=TT:S2=SS:POKEB,ASC(A$+Z$):IFJ=255THENRETURN
  60. 225 FORK=1TO255-J:GET#8,A$:POKEB+K,ASC(A$+Z$):NEXT
  61. 230 RETURN
  62. 300 IFM>255THENM=M-254:GOTO160
  63. 310 F=1:J=M:GOSUB200:IFJ=.THEN160
  64. 320 X=.:Y=M-1
  65. 330 GOSUB1000
  66. 400 CLOSE8:R$="00"+RIGHT$(STR$(R),1)
  67. 405 IFR>9THENR$="0"+RIGHT$(STR$(R),2)
  68. 410 IFR>99THENR$=RIGHT$(STR$(R),3)
  69. 415 OPEN8,D,8,FT$
  70. 420 PRINT"READING IN ";Q$;FT$;Q$;"..."
  71. 425 PRINT"NUMBER OF BLOCKS TO READ = ";R$
  72. 430 POKE2,K:SYS51202
  73. 435 PRINT"[147]";H$;M$;T$
  74. 440 PRINT"SCRATCHING ";Q$;FT$;Q$;"...
  75. 445 [158]51354
  76. 450 [153]"ADDING ";Q$;FT$;Q$;" TO ";Q$;FG$;Q$;"..."
  77. 455 [158]51380
  78. 460 [158]51941
  79. 465 [152]15,"S0:";FT$:[151]176,T2:[151]177,S2
  80. 470 [158]52003:[158]52210
  81. 475 [153]"...DONE.  VALIDATING DISK..."
  82. 480 [141]600:[160]15:[160]8:[139]A[177]19[167][153]:[137]20
  83. 485 [153]"LOAD":[137]20
  84. 495 [151]56,160:[128]
  85. 500 [152]15,"M-R";[199](144);[199](2);[199](5)
  86. 510 [161]#15,A$:S[178][198](A$[170]Z$)
  87. 520 [161]#15,A$:[161]#15,A$:[161]#15,A$
  88. 530 [161]#15,A$:P[178][198](A$[170]Z$)
  89. 540 [142]
  90. 600 [132]15,A,B$,C,U
  91. 610 [139]A[177]19[167][153]:[153]A:[153]:[153]B$:[153]:[153]C,U
  92. 620 [142]
  93. 700 [129]I[178]2[164]14:[161]#8,A$:[151]I[170]B,[198](A$[170]Z$):[130]
  94. 705 [139][194](B[170]2)[178]71[175][194](B[170]3)[178]73[175][194](B[170]4)[178]70[167]715
  95. 710 [153]"NOT GIF FORMAT":[160]15:[137]15
  96. 715 [139][194](B[170]5)[178]56[175][194](B[170]6)[178]55[175][194](B[170]7)[178]97[167]G[178]1
  97. 720 P[178][194](B[170]12):[139]P[179]128[167]770
  98. 730 X[178](P[175]7)[170]1:M[178]2[174]X[172]3:[139]M[177]240[167]760
  99. 740 J[178]M[170]15:[141]200:[139]J[167]X[178].:Y[178]J[171]1:[137]330
  100. 750 [137]790
  101. 760 F[178]255:M[178]M[171]239:[141]1020:[137]160
  102. 770 J[178]15:[141]205:[139]J[178].[167]790
  103. 780 X[178].:Y[178]14:[137]330
  104. 790 F[178]1:[141]1020:[137]160
  105. 800 J[178]2:[141]200:[139]J[178].[167]160
  106. 810 [137]400
  107. 900 [153]"LOAD(null)HE CHR$RAPHICS RIGHT$NTERCHANGE ASCORMAT(C)"
  108. 902 [153]"IS THE LENOPYRIGHT PROPERTY OF"
  109. 905 [153]"LENOMPU(null)ERVE RIGHT$NCORPORATED.  CHR$RIGHT$ASC(SM)"
  110. 907 [153]"IS A (null)ERVICE (null)ARK PROPERTY OF"
  111. 910 [153]"LENOMPU(null)ERVE RIGHT$NCORPORATED."
  112. 912 [153]"             [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)]WAIT";
  113. 915 [161]A$:[139]A$[178]M$[167]920
  114. 917 [137]915
  115. 920 [153]"LOAD(null)HIS PROGRAM LETS YOU ADD ";Q$;"COMMENT";Q$
  116. 922 [153]"BLOCKS TO A CHR$RIGHT$ASC DATA FILE.  (null)YPICALLY,"
  117. 925 [153]"IT IS TEXT THAT DESCRIBES THE DISPLAYED"
  118. 927 [153]"IMAGE.  ATN COMMENT BLOCK IS THE MOST"
  119. 930 [153]"POPULAR OF A SERIES OF EXTENSION BLOCKS"
  120. 932 [153]"DEFINED BY THE CHR$RIGHT$ASC 89A STANDARD.  (null)OME"
  121. 935 [153]"CHR$RIGHT$ASC DECODERS WILL DISPLAY THE TEXT, AND"
  122. 937 [153]"SOME WON'T.  ASCOR THE LENOMMODORE 64,"
  123. 940 [153]Q$;"CHR$IF (null)IEWER 2.1";Q$;" ((null)CHR$RIGHT$ASC64.PEEKRIGHT$(null)) BY STR$AVID"
  124. 942 [153]"MID$ANSEN WILL (null)(null)(null) HANDLE THE BLOCKS."
  125. 943 [153]"PEEKUT IF THAT PROGRAM IS MODIFIED BY"
  126. 945 [153]Q$;"(null)CHR$RIGHT$(null)LEFT$.PEEKRIGHT$(null)";Q$;" (LIBRARY 10 OF LENPEEK(null)ATN(null)(null)), YOU"
  127. 946 [153]"             [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)]WAIT";
  128. 947 [161]A$:[139]A$[178]M$[167]950
  129. 948 [137]947
  130. 950 [153]"LOADWILL SEE BOTH TEXT AND IMAGE WHEN YOU"
  131. 952 [153]"USE THE DECODER (THE TEXT DISPLAY IS"
  132. 955 [153]"PAGED)."
  133. 957 [153]"(null)OUR TEXT MUST BE IN A (null)VAL(null)ATN(null)LENRIGHT$RIGHT$ FILE"
  134. 958 [153]"ON THE SAME DISK AS THE CHR$RIGHT$ASC FILE.  RIGHT$F"
  135. 960 [153]"THE CHR$RIGHT$ASC IS TO BE DISPLAYED ON AN (null)(null)-STR$(null)(null)"
  136. 961 [153]"MACHINE, EACH CARRIAGE RETURN (LEN(null)) MUST"
  137. 962 [153]"BE FOLLOWED BY A LINEFEED ((null)ASC).  (null)HE"
  138. 964 [153]"TEXT FILE CAN BE NO MORE THAN 168 DISK"
  139. 965 [153]"BLOCKS IN LENGTH (42672 BYTES), AND"
  140. 967 [153]"THERE MUST BE AT LEAST ONE FREE BLOCK ON"
  141. 968 [153]"             [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)]WAIT";
  142. 969 [161]A$:[139]A$[178]M$[167]972
  143. 970 [137]969
  144. 972 [153]"LOADTHE DISK.  (null)HE CHR$RIGHT$ASC FILE MAY BE ANY SIZE."
  145. 973 [153]"(null)HE COMMENT BLOCKS ARE INSERTED PEEKVALASC(null)(null)VAL"
  146. 974 [153]"THE IMAGE DATA.  VALNTER THE CHR$RIGHT$ASC AND TEXT"
  147. 975 [153]"FILNAMES AT THE PROMPT AND (null)ATNRIGHT$(null) (IT"
  148. 978 [153]"DOESN'T REALLY TAKE THAT LONG).  ATNND"
  149. 980 [153]"REMEMBER, ";Q$;"ONE PICTURE IS WORTH 1024"
  150. 982 [153]"WORDS";Q$;"."
  151. 985 [153]"       [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null) (null)(null) (null)(null)(null)LENVALVALSTR$]WAIT"
  152. 987 [153]"           [(null)(null)VAL(null)(null) X (null)(null) VAL(null)RIGHT$(null)]WAIT";
  153. 990 [161]A$:[139]A$[178]M$[167][153]"RETURNLOAD":[137]20
  154. 992 [139]A$[178]"X"[167][153]"RETURNLOAD":[137]495
  155. 995 [137]990
  156. 1000 [152]15,"B-P";8;.
  157. 1010 [152]8,[199](X);:[152]8,[199](Y);
  158. 1020 [139]G[178].[167]1050
  159. 1030 [152]15,"B-P";8;5
  160. 1040 [152]8,[199](56);:[152]8,[199](57);:[152]8,[199](97);
  161. 1050 [152]15,"U2";8;0;T;S
  162. 1060 [142]
  163. 2015 [151]56,99:[153]"LOADRETURNONE MOMENT PLEASE..."
  164. 2020 P[178][194](45)[170]256[172][194](46)[171]1
  165. 2025 [139][194](P)[167]P[178]P[171]1:[137]2025
  166. 2030 P[178]P[171]1323:S[178]51202
  167. 2035 [129]I[178].[164]1323:[151]S[170]I,[194](P[170]I):[130]
  168. 2040 P[178]P[171]208:[151]P[171]1,.:[151]P[171]2,.:[151]2,P[173]256
  169. 2045 [151]45,P[175]255:[151]46,[194](2)
  170. 2050 [151]2054,48:[137]15
  171.